import moment from 'moment'

//test
function getDiff(e, unit = 'minutes') {
    return {
        months: moment.duration(e, unit).months(),
        weeks: moment.duration(e, unit).weeks(),
        days: moment.duration(e, unit).days(),
        hours: moment.duration(e, unit).hours(),
        minutes: moment.duration(e, unit).minutes(),
    }
}
//
function formatTime(time, fmt = 'YYYY-MM-DD HH:mm:ss.SSS') {

    return moment(time).format(fmt)
}
//当前时间
function getNowTime(fmt = 'YYYY-MM-DD HH:mm:ss.SSS') {
    return moment().format(fmt)

}

// 获取今天的开始结束时间
function getTodayday() {
    let date = []
    date.push(moment().subtract('days', 0).format('YYYY-MM-DD 00:00:00'))
    date.push(moment().subtract('days', 0).format('YYYY-MM-DD 23:59:59'))
    return date
}
// 获取昨天的开始结束时间
function getYesterday() {
    let date = []
    date.push(moment().subtract('days', 1).format('YYYY-MM-DD 00:00:00'))
    date.push(moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'))
    return date
}
// 获取最近七天的开始结束时间
function getLast7Days() {
    let date = []
    date.push(moment().subtract('days', 7).format('YYYY-MM-DD 00:00:00'))
    date.push(moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'))
    return date
}
// 获取最近30天的开始结束时间
function getLast30Days() {
    let date = []
    date.push(moment().subtract('days', 30).format('YYYY-MM-DD 00:00:00'))
    date.push(moment().subtract('days', 1).format('YYYY-MM-DD 23:59:59'))
    return date
}

// 获取上一周的开始结束时间
function getLastWeekDays() {
    let date = []
    let weekOfday = parseInt(moment().format('d')) // 计算今天是这周第几天  周日为一周中的第一天
    let start = moment().subtract(weekOfday + 6, 'days').format('YYYY-MM-DD 00:00:00') // 周一日期
    let end = moment().subtract(weekOfday, 'days').format('YYYY-MM-DD 23:59:59') // 周日日期
    date.push(start)
    date.push(end)
    return date
}
// 获取上一个月的开始结束时间
function getLastMonthDays() {
    let date = []
    let start = moment().subtract('month', 1).format('YYYY-MM-01 00:00:00')
    let end = moment(start).subtract('month', -1).add('days', -1).format('YYYY-MM-DD 23:59:59')
    date.push(start)
    date.push(end)
    return date
}
// 获取当前周的开始结束时间
function getCurrWeekDays() {
    let date = []
    let weekOfday = parseInt(moment().format('d')) // 计算今天是这周第几天 周日为一周中的第一天
    let start = moment().subtract(weekOfday - 1, 'days').format('YYYY-MM-DD 00:00:00') // 周一日期
    let end = moment().add(7 - weekOfday, 'days').format('YYYY-MM-DD 23:59:59') // 周日日期
    date.push(start)
    date.push(end)
    return date
}
// 获取当前月的开始结束时间
function getCurrMonthDays() {
    let date = []
    let start = moment().add('month', 0).format('YYYY-MM-01 00:00:00')
    let end = moment(start).add('month', 1).add('days', -1).format('YYYY-MM-DD 23:59:59')
    date.push(start)
    date.push(end)
    return date
}
function getyearDays() {
    let date = []
    let weekOfday = parseInt(moment().format('m')) // 计算今天是这周第几yue 
    let start = moment().subtract(0, 'month').format('YYYY-01-01 00:00:00') // 周一日期
    let end = moment().subtract('days', 0).format('YYYY-MM-DD 23:59:59')
    date.push(start)
    date.push(end)
    return date

}
export default { getDiff, getNowTime, formatTime,getCurrMonthDays, getCurrWeekDays, getLastMonthDays, getLastWeekDays, getLast30Days, getLast7Days, getYesterday, getTodayday, getyearDays }